package src.algorithm;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * *题目：一个数如果恰好等于它的因子之和，这个数就称为"完数"。例如6=1＋2＋3.编程 找出1000以内的所有完数。
 */
public class WanShu
{
    public static boolean isWanShu(int num)
    {
        int temp = 0;
        for (int i = 1;i<num;i++)
        {
            if(num%i==0)//判断是否是num的因数
                temp += i;
        }
        if(temp == num)
            return true;
        else
            return false;
    }

    public static void main(String[] args){
        BufferedReader buffer = new BufferedReader(new InputStreamReader(
                System.in));
        String str = null;
        System.out.println("输入寻找的范围（比如输入1000，将查找1-1000内的完数）");
        try {
            str = buffer.readLine();
            for(int i = 1;i<=Integer.parseInt(str);i++){
                if(isWanShu(i)){
                    System.out.println("完数："+i);
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
